package demo01;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.HashMap;
import java.util.Map;

/*
 *  文本排序：
 *  案例分析：逐行读取文件的文本信息，解析每一行到集合中，最后遍历集合，按顺序写入新文本
 */
public class Demo04BufferedSort {
    public static void main(String[] args) {
        Map<Integer, String> map = new HashMap<>(); // 文件信息的保存集合
        try (BufferedReader bufferedReader = new BufferedReader(new FileReader("file\\sortTxt\\出师表-乱序.txt")); // 创建字符输入缓冲流
                BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("file\\sortTxt\\出师表.txt"))) { // 创建字符输出缓冲流
            String line = new String(); // 读取的有效行
            while ((line = bufferedReader.readLine()) != null) {
                map.put(line.charAt(0) - '0', line); // 将读取到的有效行存入map集合，键为行首第0个元素（int），值为本行内容（String）
            }
            for (int i = 1; i <= map.size() ; i++) { // map.size()确定了写入行的次数，从map集合通过i键找到对应的行值
                System.out.println(map.get(i)); // 输出显示
                bufferedWriter.write(map.get(i)); // 写入文件
                bufferedWriter.newLine(); // 写入换行符
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        /*
         *  输出结果：
         *  1.先帝创业未半而中道崩殂，今天下三分，益州疲弊，此诚危急存亡之秋也。然侍卫之臣不懈于内，忠志之士忘身于外者，盖追先帝之殊遇，欲报之于陛下也。诚宜开张圣听，以光先帝遗德，恢弘志士之气，不宜妄自菲薄，引喻失义，以塞忠谏之路也。
         *  2.宫中府中，俱为一体，陟罚臧否，不宜异同。若有作奸犯科及为忠善者，宜付有司论其刑赏，以昭陛下平明之理，不宜偏私，使内外异法也。
         *  3.侍中、侍郎郭攸之、费祎、董允等，此皆良实，志虑忠纯，是以先帝简拔以遗陛下。愚以为宫中之事，事无大小，悉以咨之，然后施行，必得裨补阙漏，有所广益。
         *  4.将军向宠，性行淑均，晓畅军事，试用之于昔日，先帝称之曰能，是以众议举宠为督。愚以为营中之事，悉以咨之，必能使行阵和睦，优劣得所。
         *  5.亲贤臣，远小人，此先汉所以兴隆也；亲小人，远贤臣，此后汉所以倾颓也。先帝在时，每与臣论此事，未尝不叹息痛恨于桓、灵也。侍中、尚书、长史、参军，此悉贞良死节之臣，愿陛下亲之信之，则汉室之隆，可计日而待也。
         *  6.臣本布衣，躬耕于南阳，苟全性命于乱世，不求闻达于诸侯。先帝不以臣卑鄙，猥自枉屈，三顾臣于草庐之中，咨臣以当世之事，由是感激，遂许先帝以驱驰。后值倾覆，受任于败军之际，奉命于危难之间，尔来二十有一年矣。
         *  7.先帝知臣谨慎，故临崩寄臣以大事也。受命以来，夙夜忧叹，恐付托不效，以伤先帝之明，故五月渡泸，深入不毛。今南方已定，兵甲已足，当奖率三军，北定中原，庶竭驽钝，攘除奸凶，兴复汉室，还于旧都。此臣所以报先帝而忠陛下之职分也。至于斟酌损益，进尽忠言，则攸之、祎、允之任也。
         *  8.愿陛下托臣以讨贼兴复之效，不效，则治臣之罪，以告先帝之灵。若无兴德之言，则责攸之、祎、允等之慢，以彰其咎；陛下亦宜自谋，以咨诹善道，察纳雅言，深追先帝遗诏，臣不胜受恩感激。
         *  9.今当远离，临表涕零，不知所言。
         */
    }
}
